import { createI18n } from 'vue-i18n';

// 异步加载国际化文件
const loadMessages = async () => {
  const [en, zh, ja] = await Promise.all([
    import('@/i18n/en.json'),
    import('@/i18n/zh.json'),
    import('@/i18n/ja.json')
  ]);
  
  return {
    en: en.default,
    zh: zh.default,
    ja: ja.default
  };
};

// 创建一个异步函数来初始化i18n实例
export const initI18n = async () => {
  const messages = await loadMessages();
  
  const i18n = createI18n({
    locale: localStorage.getItem("language") || 'zh', // 默认语言
    fallbackLocale: 'zh', // 回退语言
    messages
  });
  
  return i18n;
};

// 为了向后兼容，也导出一个默认的i18n实例（在实际应用中可能需要在main.js中异步初始化）
let i18nInstance = null;
export const getI18nInstance = async () => {
  if (!i18nInstance) {
    i18nInstance = await initI18n();
  }
  return i18nInstance;
};